Changes / new features in SNiF 1.34 (public release) o New option: +o, -o. This option allows you to tell SNiF whether it should OR or AND all criteria in a list. o Added the +m2 option: +m2 acts like +m1 though it also hides (sets Hidden attribute) all files in the advanced exception list. Useful for passing wildcarded parameters to other programs. o Greatly optimized the grep-like (+g option) searching routine. It is now only marginally slower than Borlands GREP.COM utility. o Optimized the string-substitution routine, it's also a lot faster now. o Minor bugfixes. Changes / new features in SNiF 1.33 (public release) o New option: +kSTRING, -k This one allows you to specify a 'C-like' format-string for the logfile output. For each file sniffed this string will be logged, subject to the following substitutions: &f full pathname (incl. filename) of the file sniffed &p pathname only of file sniffed &n filename only of file sniffed &m currently active filemask &t sniffed file's creation time &d sniffed file's creation date &a sniffed file's attributes &s sniffed file's size in bytes It is also allowed to include hex-entries (\XX) in the format-string, like- wise to the +g option. The +k option is one of the more advanced features of SNiF... so for normal, standard logfile-info one might rather use the simpler +bINFO (or -bINFO) option! Option -k disables the format-string. Default: -k o It is now possible to set up an environment variable called SNIF which contains SNiF options and/or filemasks. This environment variable is scanned *before* the command-line is scanned and thus can be used to issue (default) options automagically. For instance, if you wanted SNiF to default to sniffing the whole system (ie. all hard-drives) instead of the current drive only, you could set the SNIF environment variable to +wCZ (using: set snif=+wCZ). *Any* option/filemask that can be given at the command-line is legal in the SNIF environment variable... happy configuring! ;-) Changes / new features in SNiF 1.31 (non-public release) o Optimized behaviour of the relative time-criterion. It now 'properly' handles a file's creation-time and is no longer date-criterion dependent. In practice this means that when you want to snif for files maximum 5 mins old (+tY5), you will only get those files that _are_ actually maximum 5 mins old, and not those that were 5 mins old the same time yesterday, the day before yesterday, etc... Changes / new features in SNiF 1.30 (non-public release) o Extended the +u option to accept absolute dates in American format as well: SNiF looks at the date-separator character to determine which format is used, a '/' character specifies European format (ie. dd/mm/yy), a '-' character specifies American format (ie. mm-dd-yy). Eg: +uA09-22-91 and +uA22/09/91 both instruct SNiF to search files created after 22nd of September 1991. o Slightly modified +b option: issuing +bINFO now causes the additional file- info to be printed in the logfile, SNiF no longer does this by default!!! Issuing +bNOINFO will turn this feature back off again. I made this modification so that SNiF's default log-output can be easily used as input for another program (eg a file transfer protocol). o New option: +m, +m1, -m This option is an _extremely_ powerful one; it allows you to build advanced exceptions using any criteria that SNiF supports (ie. not only filemasks, as +n option). Advanced exceptions are built just as you would build a set of criteria for normal sniffing, ie. you just specify the criteria which make up the advanced exception using the normal options... To start building advanced exceptions, issue the +m command. Any criteria or filemasks following this +m will be added to the advanced exception list. When the advanced exception list is built, and you want to activate it, issue the +m1 command and subsequently specify the criteria and filemasks you wish to snif for. For example: we wish to snif all files on the current drive, except all hidden .SYS files. This could be done with something like: SNiF +m +aH *.sys +m1 -a *.* We first turn on advanced exception building with +m, then specify the criterion for hidden-attribute sniffing and the *.sys filemask. Note that after having turned off building of advanced exceptions with +m1 (thus also activating it!), we still need to specify -a because we want to snif every file on the drive, not only the hidden ones! It is important to note that a +m1 instance does NOT turn off any criteria activated for advanced exceptions, we must do so separately! To disable advanced exceptions, -m must be issued. Default: -m o Added quick help on options available. SNiF -? gives this quick help. Changes / new features in SNiF 1.28 (non-public release) o Slightly changed use and behaviour of the +x (command execution) option. Option +x is now also a cumulative command like +n etc. This means you can set up multiple execution-commands with multiple instances of +x. Commands will be executed in the order they are given at the command-line (or in the .ctl file). Option -x clears ALL these commands. Eg: SNiF "+xtype &f" "+xdel &f" *.bak will first type any *.bak file found and subsequently delete it. o Same mods to the +g option: multiple search-strings may now be specified with multiple instances of +g. So, SNiF +ghello +gthere *.* will only snif files that contain the strings "hello" and/or "there". Option -g clears ALL search- strings. Also added hex-entry support in +g strings: Any occurence of \XX (2 digit hex number) will be translated into the corresponding byte. To include a '\', you should specify \\ in the string. So, SNiF +gB\41LL *.txt will snif all .txt files containing the case-insensitive string "ball". o Fixed huge bug that crept into the control-file parser whilst modifying it to accept only one option per line! o Fixed bug that caused SNiF (the whole system) to crash when the statistics mask-list became too long. Changes / new features in SNiF 1.24 (non-public release) o Again modified the +w option: SNiF now defaults to +w (ie. snif whole current drive) when NO paths are specified. Otherwise, it'll just snif the paths preceding the filemasks. With -w and no paths given, SNiF will start its search in the current dir. on the current drive. o Big change to the control-file parser: it now only accepts one (1) option per line!!! The advantage of this is that you no longer need to use quotes ("") when option-parameters are strings containing spaces. Ie: "+xdel &f" becomes a plain +xdel &f. o Fixed bug with +f skipping the current dir. if first file found is a file- mask exception. Changes / new features in SNiF 1.23 (non-public release) o SNiF now exits with errorlevel 0 if nothing was sniffed, and 1 if at least one file was sniffed. o Little change to the behaviour of the +w (global system sniffing) command: Issueing just +w will cause SNiF to search the whole CURRENT DRIVE, not the whole system, as before. To invoke a whole system snif, you must explicitly provide the maximum drive-range with the +w option, like: +wCZ or +wAZ. A new drive-specifier is recognized: @ indicating the current drive, so +w@Z would start sniffing from the current drive up to drive Z:. o New option: +gSTRING, -g This option acts like a little GREP: it allows you to snif files that contain the STRING sequence of characters. By default, the search is case-insensitive, to make it case-sensitive, the first character of STRING must be an exclamation-mark: !. So, if the case-sensitive string you wish to search for should start with an !, eg !blabla, you would specify: +g!!blabla. Note that this option isn't at all meant to replace GREP, it isn't as fast and as versatile, but it's there if you need it. Option -g turns GREP-searching off. Just specifying +g will cause SNiF to take the previous STRING value, if one has been used already! Default: -g o New option: +tSTRING, -t Allows you to specify an indefinite number of file creation-time criteria. Like +n, multiple criteria may be specified with multiple instances of +t. SNiF can handle two types of time criteria: absolute and relative ones. Absolute criteria are of the form: Thh:mm:ss where T is either E (equal to), B (before) or A (after), and hh:mm:ss is a time in hours:minutes:seconds, two digits per time-element MUST be given. So, option +tA20:12:16 means only files created after 20:12:16 will be sniffed. Relative criteria are of the form: Tnnnnn where T is either X (exactly), O (older than) or Y (younger than), and nnnnn is a number of minutes in decimal. So +tX45 means only snif files that are exactly 45 mins old (only regarding time, not date!). Most of the time, +t will be used in conjunction with +u (see further). Default: -t o New option: +uSTRING, -u Allows you to specify an indefinite number of file creation-date criteria. Like +n, multiple criteria may be specified with multiple instances of +u. SNiF can handle two types of date criteria: absolute and relative ones. Absolute criteria are of the form: Ddd/mm/yy where D is either E (equal to), B (before) or A (after), and dd/mm/yy is a date as day/month/year, two digits per date-element MUST be given. So, option +uB14/09/90 means only files created before 14th of september 1990 will be sniffed. Relative criteria are of the form: Dnnnn where D is either X (exactly), O (older than) or Y (younger than), and nnnn is a number of days in decimal. So +uO5 means only snif files that are (more than) 5 days old. Default: -u Changes / new features in SNiF 1.20 (non-public release) o SNiF now has some tighter memory checking. Previous versions didn't complain when memory allocations failed, which could have disastrous consequences when deleting sniffed files with filemask exceptions. o New option: +aHSRA, -a Allows you to specify an attribute mask. Only files that have these attrs will be sniffed. Option -a disables attribute sniffing, it has the same effect as +aHSRA (ie. all attrs on). H Hidden attribute S System attribute R Read-only attribute A Archive attribute Default: -a o New option: +bSTRING, -b This option is only useful when using a logfile. It allows you to put in a commentline with the value of STRING. Note that when the +b option is set, all pathnames of files sniffed will be indented by 3 spaces, giving a neater layout. Option -b disables this indentation. Default: -b o New option: +zSTRING, -z This option allows you to set a filesize criterion. An unlimited number of filesize criteria may be set (memory-permitting, of course) by specifying multiple instances of the +z option (analogous to +n option). Only files whose filesize conforms to at least one of the criteria are sniffed. The value of STRING must be of the form: Onnnnnnn where O is either E (equal to), L (less than) or G (greater than). where nnnnnnn is the number of bytes to compare the filesize with (decimal). Default: -z Carl Declerck.